#include "main.h"
#include "time_bsp.h" 

__weak void user_TIM1_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM2_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM3_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM4_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM5_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM6_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM7_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM8_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM9_OC_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  switch(CV(htim->Instance))
  {
  case CV(TIM1):
    break;
  case CV(TIM2):
    break;
  case CV(TIM3):
    break;
  case CV(TIM4):
    break;
  case CV(TIM5):
    break;
  case CV(TIM6):
    user_TIM6_OC_PeriodElapsedCallback(htim);
    break;
  default:
    break;
  }
}

__weak void user_TIM1_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM2_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM3_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM4_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM5_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM6_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM7_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM8_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}
__weak void user_TIM9_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim){}

void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
  switch(CV(htim->Instance))
  {
  case CV(TIM1):
    user_TIM1_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM2):
    user_TIM2_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM3):
    user_TIM3_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM4):
    user_TIM4_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM5):
    user_TIM5_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM6):
    user_TIM6_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM7):
    user_TIM7_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM8):
    user_TIM8_OC_DelayElapsedCallback(htim);
    break;
  case CV(TIM9):
    user_TIM9_OC_DelayElapsedCallback(htim);
    break;
  }
}

__weak void user_TIM5_IC_CaptureCallback(TIM_HandleTypeDef *htim){};

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
  if(htim->Instance == TIM5)
  {
    user_TIM5_IC_CaptureCallback(htim);
  }
}
